import math
ne = 1
aN = 0
aC = 0
ce = 0
n = int(input())
def nech(n):
global ne
global aN
global aC
global ce
if (n % 2 == 0):
res = [ne % n - 1 * (ne // n % 2) * ((n % 2 + 1) % 2), ne // n]
else:
res = [ne % n, ne // n]
ne += 2
aN += 1
return res
def chet(n):
global ne
global aN
global aC
global ce
if (n % 2 == 0):
res = [ce % n + 1 * (ce // n % 2) * ((n % 2 + 1) % 2), ce // n]
else:
res = [ce % n, ce // n]
ce += 2
aC += 1
return res
for i in range(n * n):
col = int(input())
if col == 2:
if aN < int((n * n) / 2):
x, y = map(int, nech(n))
print(1, x + 1, y + 1)
else:
x, y = map(int, chet(n))
print(3, x + 1, y + 1)
if col == 1:
if aC < math.ceil(n * n / 2):
x, y = map(int, chet(n))
print(2, x + 1, y + 1)
else:
x, y = map(int, nech(n))
print(3, x + 1, y + 1)
if (col == 3):
if aC < math.ceil(n * n / 2):
x, y = map(int, chet(n))
print(2, x + 1, y + 1)
else:
x, y = map(int, nech(n))
print(1, x + 1, y + 1)
1920. Build Array from Permutation | 494. Target Sum |
797. All Paths From Source to Target | 1547B - Alphabetical Strings |
1550A - Find The Array | 118B - Present from Lena |
27A - Next Test | 785. Is Graph Bipartite |
90. Subsets II | 1560A - Dislike of Threes |
36. Valid Sudoku | 557. Reverse Words in a String III |
566. Reshape the Matrix | 167. Two Sum II - Input array is sorted |
387. First Unique Character in a String | 383. Ransom Note |
242. Valid Anagram | 141. Linked List Cycle |
21. Merge Two Sorted Lists | 203. Remove Linked List Elements |
733. Flood Fill | 206. Reverse Linked List |
83. Remove Duplicates from Sorted List | 116. Populating Next Right Pointers in Each Node |
145. Binary Tree Postorder Traversal | 94. Binary Tree Inorder Traversal |
101. Symmetric Tree | 77. Combinations |
46. Permutations | 226. Invert Binary Tree |